#pragma once

#include <Plugin.h>
#include <string>

class PluginBase : Plugin
{
public:
	PluginBase();
	virtual ~PluginBase();

	// initialize plugin
	virtual int Init();

	// shutdown plugin
	virtual int Shutdown();

	void ShowMessagebox(const char *msg, const char *caption);

	//get hex string
	std::string StringToHexString(std::string strSrc);
	std::string HexStringToString(std::string strSrc);
};

extern "C" __declspec(dllexport) void *CreatePlugin()
{
	return new PluginBase();
}

extern "C" __declspec(dllexport) void ReleasePlugin(void *plugin)
{
	delete static_cast<PluginBase*>(plugin);
}